﻿using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using HengTong.Model.Db.Hr;

namespace HengTong.Model.Db.Hr.Bill;

/// <summary>
/// 替班申请
/// </summary>
[Display(Name = "替班申请", Description = "员工替班申请表单", GroupName = "日常业务表单")]
public class SysDailySubstitutionRequestBill : BaseBill
{
    [Required]
    [Display(Name = "员工ID", Description = "被替班的员工主键", GroupName = "员工信息")]
    public Guid? PersonId { get; set; }

    [Display(Name = "员工", Description = "被替班的员工实体", GroupName = "员工信息")]
    public SysPerson Person { get; set; }

    [Required, StringLength(128)]
    [Display(Name = "员工工号", Description = "员工工号", GroupName = "替班申请信息")]
    public string StaffNo { get; set; }

    [Required, StringLength(128)]
    [Display(Name = "员工姓名", Description = "员工姓名", GroupName = "替班申请信息")]
    public string Name { get; set; }

    [Required]
    [Display(Name = "开始时间", Description = "开始时间", GroupName = "替班申请信息")]
    public DateTime? StartTime { get; set; }
    
    [Display(Name = "结束时间", Description = "结束时间", GroupName = "替班申请信息")]
    public DateTime? EndTime { get; set; }

    [Required, StringLength(256)]
    [Display(Name = "事由", Description = "事由", GroupName = "替班申请信息")]
    public string Reason { get; set; }

    [Required]
    [Display(Name = "替班人员ID", Description = "替班人主键", GroupName = "替班申请信息")]
    public Guid? SubstitutePersonId { get; set; }

    [Display(Name = "替班人员", Description = "替班人实体", GroupName = "替班申请信息")]
    public SysPerson SubstitutePerson { get; set; }

    [StringLength(128)]
    [Display(Name = "替班人员工号", Description = "替班人员工号", GroupName = "替班申请信息")]
    public string SubstituteStaffNo { get; set; }

    [StringLength(128)]
    [Display(Name = "替班人员姓名", Description = "替班人员姓名", GroupName = "替班申请信息")]
    public string SubstituteName { get; set; }
}